package main

import (
	"fmt"
)

//func main(){
//	var stu model.Personal
//	stu.Id = 12
//	stu.Age = 14
//	stu.Name = "nike"
//	stu1 :=new(model.Personal)
//	stu1 = &stu
//	fmt.Printf("stu1 is %T\n",stu1)
//	result:=model.StructToMap(stu)
//	myNum := make([]int, 0)
//	fmt.Println("*****",myNum)
//	//result,ok :=result.(map[string]interface{})
//	//if !ok{
//	//	fmt.Println("转换错误")
//	//}
//	fmt.Printf("result is %T\ntag is %T",result,result.(map[string]interface{})["tag"])
//	//s := S{}
//	//f(&s)  //4
//}


//type I interface {
//	Get() int
//	Set(int)
//}
//
////2
//type S struct {
////3
//func f(i I){
//	i.Set(10)
//	fmt.Println(i.Get())
//}

func test2(v ...interface{}) {
	fmt.Println(v)
	for _, m := range v {
		fmt.Println(m)              // 依次打印 123 1 324 12
//	Age int
//}
//
//func(s S) Get()int {
//	return s.Age
//}
//
//func(s *S) Set(age int) {
//	s.Age = age
//}
//
	}
}

//func main()  {
//	c :=[]interface{}{"111","2222"}
//	test2(c...)
//	aa :=map[string]interface{}{"a":"111","b":"2222"}
//	//aa = append(aa[:0],aa[1:]...)
//	fmt.Println(aa)
//	cc := make([]map[string]string,0)
//	fmt.Println(cc)
//	for _,i :=range c{
//		for _,j :=range aa{
//			if j.(string) =="111"{
//				fmt.Println("222222")
//				break
//			}
//		}
//		fmt.Println("1111111",i)
//	}
//	//ui切片删除差切片中的元素
//	ui := []int{1,2,3,4,5}
//	cha:=[]int{1,6}
//	for _, i := range cha{
//		for index,j :=range ui{
//			if i==j{
//				ui= append(ui[:index],ui[index+1:]...)
//			}
//		}
//	}
//	fmt.Println(ui)
//}

func main()  {
	arr :=[4]int{1,2,3,4}
	a := arr[:2]
	dd :=a[:1]
	b := append(a, 1) // b=[1], a指向的底层数组的首元素为1，但是a的长度和容量不变
	fmt.Printf("b:%p,a:%p,arr:%p\n",b,a,&arr)
	c := append(a, 2) // a的长度还是0，c=[2], a指向的底层数组的首元素变为2
	fmt.Printf("c:%p,a:%p,arr:%p\n",c,a,&arr)
	//y := append(a, 2,3,3,4,5) // a的长度还是0，c=[2], a指向的底层数组的首元素变为2
	//fmt.Printf("c:%p,a:%p,y:%p\n",&c,&a,&y)
	fmt.Println(a, b, c,arr,dd) // [] [2] [2]

	//var d *int
	//var f *int
	//var g int
	//var h int
	//d = &g
	//f = &h
	//fmt.Printf("d:%p,f:%p,g:%p,h:%p\n",d,f,&g,&h)
	aa := make([]int, 1, 4)
	fmt.Println(aa)
}

